From news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!howland.reston.ans.net!newsfeed.internetmci.com!in2.uu.net!news.new-york.net!news.stormking.com!amarsden@Comp.VUW.AC.NZ Mon Mar 25 11:28:17 1996 Article: 4521 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!howland.reston.ans.net!newsfeed.internetmci.com!in2.uu.net!news.new-york.net!news.stormking.com!amarsden@Comp.VUW.AC.NZ From: Anton Marsden Newsgroups: rec.games.corewar Subject: Blizzard Date: 24 Mar 1996 03:40:51 -0500 Organization: Storm King Ind. Inc. Lines: 122 Sender: server@news.stormking.com Distribution: world Message-ID: Reply-To: amarsden@Comp.VUW.AC.NZ NNTP-Posting-Host: valhalla.stormking.com Mime-Version: 1.0 Originator: corewar-l@stormking.com Blizzard was just kicked off the Hill. This was to be expected - the Hill is experiencing a PSpace onslaught. This isn't necessarily a bad thing but how many of you are creating "revolutionary" warriors? Ivner has with CIA but that's about it. Unfortunately, the qscan he was forced (?) to attach to it has dampened its effectiveness vs. papers. Anyway, that's my $0.02 worth. Now returning to Blizzard... there are two sort of interesting things about the code. First of all, the QScan uses a SNE.I, not a JMZ.F to determine whether a position is empty or not, so any decoys near another warrior, eg. DAT.F #0,#0 are found. Secondly, the paper itself uses a small number of processes. Two lines copy the entire paper to another location then two "mini papers" are created. ;redcode-94 ;name Blizzard ;author Anton Marsden ;strategy QS -> Paper ;assert CORESIZE==8000 ;kill Blizzard ORG s data EQU (s-1) s: q FOR 4 sne.i $s+400*q,$s+400*q+100 seq.i $s+400*q+200,$s+400*q+300 mov.ab #s+400*q-f,$f ROF jmn.b $w,$f q FOR 4 sne.i $s+400*(q+8),$s+400*(q+8)+100 seq.i $s+400*(q+8)+200,$s+400*(q+8)+300 mov.ab #s+400*(q+8)-f,$f ROF jmn.b $w,$f q FOR 4 sne.i $s+400*(q+4),$s+400*(q+4)+100 seq.i $s+400*(q+4)+200,$s+400*(q+4)+300 mov.ab #s+400*(q+4)-f-100,$f ROF f: jmz.b $p,#0 add.ab #100,$-1 w: sne.i $data,@f djn.b $-2,#4 mov.i $bomb,@f sub.ab #24,$f mov.i $bomb,@f add.ab #8,$f djn.b $-2,#7 jmp.b $p,>2000 sne.i }0,{0 seq.i {0,{0 jmp.b }0,}0 dat.f #0,#0 dat.f #0,$0 dat.f #0,@0 bomb: dat.f #0,*0 dat.f #0,}0 dat.f #0,{0 dat.f #0,<0 dat.f #0,>0 dat.f $0,@0 dat.f $0,*0 dat.f $0,}0 dat.f $0,{0 dat.f $0,<0 dat.f $0,>0 dat.f @0,@0 dat.f @0,*0 dat.f @0,}0 dat.f @0,{0 dat.f @0,<0 dat.f @0,>0 dat.f *0,*0 dat.f *0,}0 dat.f *0,{0 dat.f *0,<0 dat.f *0,>0 dat.f }0,}0 dat.f }0,{0 dat.f }0,<0 dat.f }0,>0 dat.f {0,{0 dat.f {0,<0 dat.f {0,>0 dat.f <0,<0 dat.f <0,>0 nop.f >0,#0 nop.f >0,$0 nop.f >0,@0 nop.f >0,*0 nop.f >0,}0 dat.f >0,>0 ASTEP EQU 3510; mod-10 BSTEP EQU 2365; mod-5 CSTEP EQU 3315; mod-5 p: spl.b $1,>4000 spl.b $1,>6000 s1: spl.b @s1,}ASTEP mov.i }s1,>s1 mov.i }s1,>s1 s2: spl.b @s2,}BSTEP s2a: mov.i }s2,>s2 s3a: mov.i {s2,CSTEP END